![]() | ![]() | ![]() | ![]() | ![]() |
An SQL procedure query that joins multiple Google BigQuery tables might result in slow performance when the following is true about the query:
Currently, a mix of inner and outer joins is not supported with SAS/ACCESS® Interface to Google BigQuery. As a result, the entire query is not passed to the database. Instead, data is read into SAS, and the query processing is done by SAS. If the system option SASTRACE= is enabled, the following message is written to the location specified with the SASTRACELOC= system option:
There are two possible workarounds.
One workaround is to use explicit pass-through and pass the query to the database, using Google BigQuery specific SQL syntax.
Another workaround is to rewrite the query to replace the inner join of two tables with a sub-query that includes a left join along with a WHERE clause.
Here is an example query:
Here is a rewrite of the query using explicit pass-through:
Here is a rewrite of the query to replace the inner join with a left join and WHERE clause:
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
SAS System | SAS/ACCESS Interface to Google BigQuery | Linux for x64 | 9.4 | 9.4 | 9.4 TS1M6 | 9.4 TS1M8 |
SAS System | SAS/ACCESS Interface to Google BigQuery (on SAS Viya) | Linux for x64 | V.03.04 | 2021.1.1 | Viya | Viya |